(1) Field of the Invention
This invention relates to a server and a communication control method and, more particularly, to a server connected to an IP network and a method for controlling communication by such a server.
(2) Description of the Related Art
IP networks on which call processing for integrating and transmitting voice and data can be performed have developed based on the Internet Protocol version 4 (IPv4). However, the problem of exhausting IP addresses has arisen as a result of the rapid development of IP networks. Accordingly, the use of IP networks based on the Internet Protocol version 6 (IPv6) by which an almost limitless number of addresses can be allocated is spreading. This means that terminals in which IPv4 is implemented coexist with terminals in which IPv6 is implemented for a certain period of time.
Communication cannot be performed between terminals in which different IP versions are implemented. Conventionally, session initiation protocol (SIP) servers for converting the IP versions of frames have been installed on IP networks.
FIG. 29 shows an example of the configuration of a conventional SIP server system. As shown in FIG. 29, servers 201 through 203, being SIP servers, and routers 221 and 222 are installed on an IP network. Terminal 211 and 212, such as IP telephones, are connected to the IP network. The server 201 has an IP version conversion table 201a for converting the IP version of a frame so that frames (voice data) can be exchanged between IP telephones in which different IP versions are implemented. It is assumed that an IP version implemented in the terminal 211 is IPv4 and that an IP version implemented in the terminal 212 is IPv6.
FIG. 30 is a sequence diagram of the system shown in FIG. 29. In FIG. 30, 180Ringing messages and Ack messages are not shown.
The terminals 211 and 212 shown in FIG. 29 must establish an SIP session in order to communicate with each other (in order to establish a real-time transport protocol (RTP) session). As shown in FIG. 30, in step S201, the terminal 211 sends an INVITE message to the server 202. The INVITE message includes information which indicates that IPv4 is implemented in the terminal 211.
In step S202, the server 202 sends the INVITE message it received from the terminal 211 to the server 201.
In step S203, the server 201 sends the INVITE message it received from the server 202 to the server 203.
In step S204, the server 203 sends the INVITE message it received from the server 201 to the terminal 212.
In step S205, the terminal 212 compares the IP version which is implemented in the terminal 211 and which is included in the INVITE message it received with the IP version implemented in the terminal 212 and sends the result of the comparison to the server 203. The IP version implemented in the terminal 211 is IPv4 and the IP version implemented in the terminal 212 is IPv6. Therefore, the terminal 212 informs the server 203 that the IP versions implemented in the terminals 211 and 212 do not match.
In step S206, the server 203 informs the server 201 that the IP versions implemented in the terminals 211 and 212 do not match.
In step S207, the server 201 is informed that the IP versions implemented in the terminals 211 and 212 do not match, and generates an IP version conversion table 201a so that the terminals 211 and 212 can communicate with each other via a media stream based on RTP.
In step S208, the server 201 sends the server 203 an INVITE massage including an IPv6 address corresponding to the terminal 211 generated in step S207.
In step S209, the server 203 sends the terminal 212 the INVITE massage it received from the server 201.
In step S210, the terminal 212 sends a 200OK message to the server 203 because the IP version included in the INVITE massage it received from the server 203 matches the IP version implemented in it.
In step S211, the server 203 sends the 200OK message to the server 201.
In step S212, the server 201 sends the server 202 the 200OK message including an IPv4 address corresponding to the terminal 212 generated in step S207.
In step S213, the server 202 sends the 200OK message to the terminal 211.
As a result, an IPv4 RTP session is established between the terminal 211 and the server 201 and an IPv6 RTP session is established between the terminal 212 and the server 201. Accordingly, the terminals 211 and 212 can communicate with each other via the IP version conversion table 201a. 
The case where a call is made from the terminal 211 (source terminal) in which IPv4 is implemented to the terminal 212 (destination terminal) in which IPv6 is implemented has been described. By following the same procedure, a call can be made from the terminal 212 (source terminal) in which IPv6 is implemented to the terminal 211 (destination terminal) in which IPv4 is implemented.
FIG. 31 is another sequence diagram of the system shown in FIG. 29. In this example, it is assumed that the terminal 212 does not have the function of comparing IP versions. Accordingly, the server 203 times out when the result of a comparison between IP versions and a 200OK message are not sent from the terminal 212. Then the server 203 informs the server 201 that the server 203 timed out.
Steps S221 through S224 are the same as steps S201 through S204, respectively, shown in FIG. 30 and descriptions of them will be omitted.
In step S225, the server 203 times out when the result of a comparison between IP versions and a 200OK message are not sent from the terminal 212. Then the server 203 informs the server 201 that the server 203 timed out.
In step S226, the server 201 is informed by the server 203 that the server 203 timed out, and generates an IP version conversion table 201a. 
Steps S227 through S232 are the same as steps S208 through S213, respectively, shown in FIG. 30 and descriptions of them will be omitted.
As stated above, the server 203 times out and the server 201 generates the IP version conversion table 201a. By doing so, the terminals 211 and 212 can communicate with each other.
A signaling relay system and a signaling relay method capable of establishing a session between terminals in which different IP versions are implemented for performing communication are proposed (see, for example, Japanese Patent Laid-Open Publication No. 2003-152820, paragraphs [0039]-[0040] and FIG. 4). With the signaling relay system and the signaling relay method, communication can be performed between two terminals if an IP version implemented in the other terminal is determined uniquely.
However, if a destination terminal determines whether an IP version implemented in a source terminal matches an IP version implemented in the destination terminal, then messages must be exchanged between the destination terminal and a server. As a result, it is time-consuming to establish a session.
If a destination terminal does not determine whether an IP version implemented in a source terminal matches an IP version implemented in the destination terminal, then a server must detect a time-out. As a result, it is time-consuming to establish a session.
In addition, if a destination terminal determines whether an IP version implemented in a source terminal matches an IP version implemented in the destination terminal, then the destination terminal must have the function of doing so. As a result, the manufacturing costs of destination terminals will rise.